{
    title:  'HTTP Client',
    crumbs: [
        { "User's Guide": '../users/' },
    ],
}
            <h1>Appweb HTTP Client</h1>
            <p>http &mdash; HTTP client program.</p><a id="synopsis"></a>
            <h2>Synopsis</h2>
            <p>http [options] URIs ...</p><a id="description"></a>
            <h2>Description</h2>
            <p>The <b>http</b> utility uses the Appweb HTTP client library to retrieve documents from HTTP servers. It
            supports HTTP, SSL, authentication and form data and the GET, POST, PUT, DELETE, OPTIONS and TRACE HTTP
            methods. The <b>http</b> client was primarily designed to test the Appweb server.</p><a id="options"></a>
            <h2>Options</h2>
            <table title="options" class="ui table segment">
                <thead>
                    <tr>
                        <th class="four wide">Option</th>
                        <th>Description</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>--benchmark</td>
                        <td>Output timing results after retrieving URLs.</td>
                    </tr>
                    <tr>
                        <td>--cert file</td>
                        <td>Certificate CA file to validate server certificates.</td>
                    </tr>
                    <tr>
                        <td>--chunk size</td>
                        <td>Request that web server use transfer encoding for the response and break the response data
                        into chunks of the requested size. This is an Appweb web server custom header and will be
                        ignored by other web servers.</td>
                    </tr>
                    <tr>
                        <td>--continue</td>
                        <td>Continue on errors. Default is to stop on the first error.</td>
                    </tr>
                    <tr>
                        <td>--cookie cookieString</td>
                        <td>Define a cookie string to send with the request. Multiple uses okay.</td>
                    </tr>
                    <tr>
                        <td>--data bodyData</td>
                        <td>String of raw body data to send with the request. Assumed to not be URL encoded. You cannot
                        use this switch with either the --datafile or --form switches.</td>
                    </tr>
                    <tr>
                        <td>--debugger</td>
                        <td>Disable timeouts to make running in a debugger easier.</td>
                    </tr>
                    <tr>
                        <td>--delete</td>
                        <td>Use DELETE method. Shortcut for --method DELETE.</td>
                    </tr>
                    <tr>
                        <td>--form formData</td>
                        <td>String of body data to send with the request. Assumed to be URL encoded. i.e.
                        "name=paul&amp;address=uk". You cannot use this switch with either the --datafile or --form
                        switches.</td>
                    </tr>
                    <tr>
                        <td class="nowrap">--header "key: value"</td>
                        <td>Add a custom header to send with the request. Multiple --header switches can be
                        supplied.</td>
                    </tr>
                    <tr>
                        <td>--host name</td>
                        <td>Prepend all URLs with the specified host. For example if '-h www.myHost.com:8888" were used
                        with the URL "/", then http will retrieve http://www.myHost.com:8888/.</td>
                    </tr>
                    <tr>
                        <td>--insecure</td>
                        <td>Don't validate server certificates when using SSL.</td>
                    </tr>
                    <tr>
                        <td>--iterations count</td>
                        <td>Retrieve the URLs iterations times. Useful for load testing. This switch can also be
                        abbreviated as -i.</td>
                    </tr>
                    <tr>
                        <td>--log logSpec</td>
                        <td>Specify a file to log messages. The syntax is: "--log log- Name[,moduleName][:logLevel]".
                        Level 3 will trace the request and response headers.</td>
                    </tr>
                    <tr>
                        <td>--method method</td>
                        <td>Set the HTTP method. Values may be "GET", "PUT", "OPTIONS", "TRACE".</td>
                    </tr>
                    <tr>
                        <td>--nofollow</td>
                        <td>Don't automatically follow redirect responses.</td>
                    </tr>
                    <tr>
                        <td>--noout</td>
                        <td>Run in quiet mode and do no output. Suppress tracing requests. This switch can also be
                        abbreviated as -n.</td>
                    </tr>
                    <tr>
                        <td>--out filename</td>
                        <td>Send output to the given file.</td>
                    </tr>
                    <tr>
                        <td class="nowrap">--password passPhrase</td>
                        <td>Specify a password to send with the request. Requires a user name to be also specified via
                        --user.</td>
                    </tr>
                    <tr>
                        <td>--post</td>
                        <td>Use POST method. Shortcut for --method POST.</td>
                    </tr>
                    <tr>
                        <td>--printable</td>
                        <td>Make binary output printable by printing hex digits for each character.</td>
                    </tr>
                    <tr>
                        <td class="nowrap">--protocol HTTP_VERSION</td>
                        <td>Use the specified HTTP protocol. httpVersion should be either '0' for HTTP/1.0 or '1' for
                        HTTP/1.1.</td>
                    </tr>
                    <tr>
                        <td>--put</td>
                        <td>Use PUT method. Shortcut for --method PUT.</td>
                    </tr>
                    <tr>
                        <td>--range byteRange</td>
                        <td>Request that only the specified byte range of data be returned with the response. This will
                        add a "Range" header to the request. The range format is: Range: bytes=n1-n2,n3-n4,... where n1
                        is first byte position and n2 is last byte position. Multiple --range switches can be supplied.
                        Examples: 0-49 first 50 bytes 50-99,200-249 Two 50 byte ranges from 50 and 200 -50 Last 50
                        bytes 1- Skip first byte then emit the rest</td>
                    </tr>
                    <tr>
                        <td>--retries count</td>
                        <td>Retry failed requests this number of times.</td>
                    </tr>
                    <tr>
                        <td>--showHeaders</td>
                        <td>Output HTTP headers. Useful for debugging.</td>
                    </tr>
                    <tr>
                        <td>--showStatus</td>
                        <td>Output the HTTP response status code.</td>
                    </tr>
                    <tr>
                        <td>--single</td>
                        <td>Single step between requests by pausing for user input before proceeding.</td>
                    </tr>
                    <tr>
                        <td>--threads loadThreads</td>
                        <td>Number of threads to use. Each URL will be retrieved by all threads. Useful only for load
                        testing.</td>
                    </tr>
                    <tr>
                        <td>--timeout seconds</td>
                        <td>Specify a timeout to use for each request in seconds.</td>
                    </tr>
                    <tr>
                        <td>--upload</td>
                        <td>Use multipart mime file upload for the body content</td>
                    <tr>
                        <td>--user user</td>
                        <td>Specify a user name to send with the request. If a password is not specified via
                        --password, the program will prompt for a password (which will not be echoed). The username and
                        password will be sent with the request according to the authentication protocol required by the
                        requested web server and requested document.</td>
                    </tr>
                    <tr>
                        <td>--verbose</td>
                        <td>Verbose mode. Trace activity to stdout. Can by specified multiple times for more verbose
                        tracing. This switch can also be abbreviated as -v.</td>
                    </tr>
                    <tr>
                        <td>--workers count</td>
                        <td>Set maximum number of worker threads.</td>
                    </tr>
                </tbody>
            </table>
